home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / MYMUD21.ZIP / MMUD21.ZIP / SOURCE / SOURCE.ZIP / VERBLIST.PAS < prev   
Pascal/Delphi Source File  |  1995-01-21  |  8KB  |  174 lines

  1. {$I COPYRGHT.INC}
  2.  
  3. (*----------------------------------------------------------------------------*
  4.  
  5.   Game Verbs and commands
  6.  
  7.  *---------------------------------------------------------------------------*)
  8.  
  9.  
  10.  
  11. Unit VerbList;
  12. Interface
  13. Uses MyIO;
  14.  
  15. Type VerbTypes = (
  16. { The normal commands }
  17.  
  18.                   UnKnown      , Say_T        , Whisper_T    , News_T       ,
  19.                   WNews_T      , Rob_T        , Give_T       , Score_T      ,
  20.                   Help_T       , Goto_T       , Home_T       , Look_T       ,
  21.                   Inv_T        , Get_T        , Drop_T       , Quit_T       ,
  22.                   WhoOn_T      , Version_T    , Kill_T       , Time_T       ,
  23.                   Page_T       , Exam_T       , LHelp_T      , Use_T        ,
  24. { Meta key's }
  25.                   Changename_M , Create_M     , ShoutAll_M   , SetFlag_M    ,
  26.                   Home_M       , Stats_M      , ShutDown_M   , ChangePass_M ,
  27.                   SetLock_M    , Unlock_M     , Desc_M       , SetHome_M    ,
  28.                   Fail_M       , Success_M    , OFail_M      , OSuccess_M   ,
  29.                   RaiseLev_M   , LowerLev_M   , Note_M       , Destroy_M    ,
  30.                   Chown_M      , Dig_M        , Open_M       , Action_M     ,
  31.                   Find_M       , Teleport_M   , Macro_M      , Info_M       ,
  32.                   Finger_M     , Edit_M       ,
  33. { Debugging aids }
  34.  
  35.                   ShowRec_D    , Fix_D,
  36. { Macro tools }
  37.                   Set_Mc       , Random_Mc    , If_Mc       ,Show_MC        ,
  38.                   Say_MC       , SayAll_Mc    , Pennies_MC  ,
  39.  
  40. { Specials }
  41.                   Wait_At_At
  42.                  );
  43. Type  VerbString = String[20];
  44.  
  45.  
  46. Function Verb2Key(V : VerbString;Level : Byte):VerbTypes;
  47. Procedure ShowHelp(Level : Byte);
  48.  
  49. Implementation
  50. Uses Header;
  51.  
  52. Type  VerbRecord = Record
  53.                     Verb  : VerbString;
  54.                     VType : VerbTypes;
  55.                     Level : Byte;
  56.                    End;
  57.  
  58. Const MaxVerb = 72;
  59.       Verbs : Array[0..MaxVerb] of VerbRecord =
  60.               (
  61.           (Verb:'?'           ;VType:Help_T      ;Level: Guest_Level   ),
  62.  
  63.           (Verb:'WNEWS'       ;VType:WNews_T     ;Level: Wizard_Level  ),
  64.           (Verb:'WHO'         ;Vtype:WhoOn_T     ;Level: Guest_Level   ),
  65.           (Verb:'WHISPER'     ;Vtype:Whisper_T   ;Level: Player_Level  ),
  66.           (Verb:'VERSION'     ;VType:Version_T   ;Level: Guest_Level   ),
  67.           (Verb:'USE'         ;VType:Use_T       ;Level: Player_Level  ),
  68.           (Verb:'TIME'        ;VType:Time_T      ;Level: Guest_Level   ),
  69.           (Verb:'THROW'       ;VType:Drop_T      ;Level: Player_Level  ),
  70.           (Verb:'TAKE'        ;Vtype:Get_T       ;Level: Player_Level  ),
  71.           (Verb:'SCORE'       ;VType:Score_T     ;Level: Guest_Level   ),
  72.           (Verb:'SAY'         ;VType:Say_T       ;Level: Guest_Level   ),
  73.           (Verb:'SACRIFICE'   ;Vtype:Drop_T      ;Level: Player_Level  ),
  74.           (Verb:'ROB'         ;VType:Rob_T       ;Level: Player_Level  ),
  75.           (Verb:'READ'        ;VType:Look_T      ;Level: Guest_Level   ),
  76.           (Verb:'QUIT'        ;Vtype:Quit_T      ;Level: Guest_Level   ),
  77.           (Verb:'PAGE'        ;VType:Page_T      ;Level: Player_Level  ),
  78.           (Verb:'NEWS'        ;VType:News_T      ;Level: Guest_Level   ),
  79.           (Verb:'LOOK'        ;VType:Look_T      ;Level: Guest_Level   ),
  80.           (Verb:'KILL'        ;Vtype:Kill_T      ;Level: Player_Level  ),
  81.           (Verb:'INVENTORY'   ;Vtype:Inv_T       ;Level: Guest_Level   ),
  82.           (Verb:'INV'         ;Vtype:Inv_T       ;Level: Guest_Level   ),
  83.           (Verb:'I'           ;Vtype:Inv_T       ;Level: Guest_Level   ),
  84.           (Verb:'HOME'        ;VType:Home_T      ;Level: Player_Level  ),
  85.           (Verb:'HELP'        ;VType:LHelp_T     ;Level: Guest_Level   ),
  86.           (Verb:'GOTO'        ;VType:Goto_T      ;Level: Guest_Level   ),
  87.           (Verb:'GO'          ;VType:Goto_T      ;Level: Guest_Level   ),
  88.           (Verb:'GIVE'        ;VTYpe:Give_T      ;Level: Player_Level  ),
  89.           (Verb:'GET'         ;Vtype:Get_T       ;Level: Player_Level  ),
  90.           (Verb:'EXAMINE'     ;VType:Exam_T      ;Level: Guest_Level   ),
  91.           (Verb:'EXA'         ;VType:Exam_T      ;Level: Guest_Level   ),
  92.           (Verb:'DROP'        ;Vtype:Drop_T      ;Level: Player_Level  ),
  93.           (Verb:'DATE'        ;VType:Time_T      ;Level: Guest_Level   ),
  94.  
  95.           (Verb:'@WALL'       ;VType:ShoutAll_M  ;Level: Wizard_Level  ),
  96.           (Verb:'@UNLOCK'     ;Vtype:Unlock_M    ;Level: Player_Level  ),
  97.           (Verb:'@TELEPORT'   ;VType:Teleport_M  ;Level: Wizard_Level  ),
  98.           (Verb:'@SUCCESS'    ;VType:Success_M   ;Level: Player_Level  ),
  99.           (Verb:'@SHUTDOWN'   ;VType:ShutDown_M  ;Level: GOD_Level     ),
  100.           (Verb:'@SETHOME'    ;VType:SetHome_M   ;Level: Builder_Level ),
  101.           (Verb:'@SET'        ;VType:SetFlag_M   ;Level: Builder_Level ),
  102.           (Verb:'@PROMOTE'    ;VType:RaiseLev_M  ;Level: Wizard_Level  ),
  103.           (Verb:'@PASSWORD'   ;VType:ChangePass_M;Level: Player_Level  ),
  104.           (Verb:'@OSUCCESS'   ;VType:OSuccess_M  ;Level: Player_Level  ),
  105.           (Verb:'@OPEN'       ;VType:Open_M      ;Level: Builder_Level ),
  106.           (Verb:'@OFAIL'      ;VType:OFail_M     ;Level: Player_Level  ),
  107.           (Verb:'@NOTE'       ;Vtype:Note_M      ;Level: Player_Level  ),
  108.           (Verb:'@NAME'       ;VType:ChangeName_M;Level: Builder_Level ),
  109.           (Verb:'@MAGIC'      ;VType:Macro_M     ;Level: Wizard_Level  ),
  110.           (Verb:'@LOCK'       ;VType:SetLock_M   ;Level: Player_Level  ),
  111.           (Verb:'@INFO'       ;VType:Info_M      ;Level: Player_Level  ),
  112.           (Verb:'@HOME'       ;Vtype:Home_M      ;Level: Player_Level  ),
  113.           (Verb:'@HOME'       ;VType:Home_M      ;Level: Builder_Level ),
  114.           (Verb:'@FINGER'     ;VType:Finger_M    ;Level: player_Level  ),
  115.           (Verb:'@FIND'       ;VType:Find_M      ;Level: Builder_Level ),
  116.           (Verb:'@FAIL'       ;VType:Fail_M      ;Level: Player_Level  ),
  117.           (Verb:'@EDITFILE'   ;VType:Edit_M      ;Level: Wizard_Level  ),
  118.           (Verb:'@DIG'        ;VType:Dig_M       ;Level: Builder_Level ),
  119.           (Verb:'@DESTROY'    ;VType:Destroy_M   ;Level: Builder_Level ),
  120.           (Verb:'@DESCRIBE'   ;VType:Desc_M      ;Level: Player_Level  ),
  121.           (Verb:'@DESC'       ;VType:Desc_M      ;Level: Player_Level  ),
  122.           (Verb:'@DEGRADE'    ;VType:LowerLev_M  ;Level: Wizard_Level  ),
  123.           (Verb:'@CREATE'     ;VType:Create_M    ;Level: Wizard_Level  ),
  124.           (Verb:'@CHOWN'      ;VType:Chown_M     ;Level: Builder_Level ),
  125.           (Verb:'@ACTION'     ;VType:Action_M    ;Level: Builder_Level ),
  126.  
  127.           (Verb:'&SHOWFILE'   ;VType:Show_MC     ;Level: Guest_Level   ),
  128.           (Verb:'&SET'        ;VType:Set_MC      ;Level: Guest_Level   ),
  129.           (Verb:'&SAYALL'     ;VType:SayAll_MC   ;Level: Guest_Level   ),
  130.           (Verb:'&SAY'        ;VType:Say_MC      ;Level: Guest_Level   ),
  131.           (Verb:'&RANDOM'     ;VType:Random_MC   ;Level: Guest_Level   ),
  132.           (Verb:'&PENNIES'    ;VType:Pennies_MC  ;Level: Guest_Level   ),
  133.           (Verb:'&IF'         ;VType:IF_MC       ;Level: Guest_Level   ),
  134.  
  135.           (Verb:'#STATS'      ;VType:Stats_M     ;Level: Wizard_Level  ),
  136.           (Verb:'#REC'        ;VType:ShowRec_D   ;Level: Wizard_Level  ),
  137.           (Verb:'#FIX'        ;VType:Fix_D       ;Level: Wizard_Level  )
  138.         );
  139.  
  140. Function Verb2Key(V : VerbString;Level : Byte):VerbTypes;
  141. Var Tmp : Integer;
  142. Begin
  143. Tmp:=MaxVerb;
  144. While (Tmp>=0) and (Verbs[Tmp].Verb<>V) Do
  145.  Dec(Tmp);
  146. If (Tmp<0) or (Verbs[Tmp].Level>Level)
  147.    Then Verb2Key:=UnKnown
  148.    Else Verb2Key:=Verbs[Tmp].VType;
  149. End;
  150.  
  151. Procedure ShowHelp(Level : Byte);
  152. Var Cnt      : Word;
  153.     LastType : VerbTypes;
  154.     Tmp      : VerbString;
  155. Begin
  156. My_WriteLn('Quicklist commands:');
  157. My_WriteLn('');
  158. LastType:=UnKnown;
  159. For Cnt:=1 To MaxVerb Do
  160.   If (Level>=Verbs[Cnt].Level) And
  161.     (Verbs[Cnt].VType<>LastType)
  162.     Then Begin
  163.          Fillchar(Tmp,SizeOf(Tmp),#32);
  164.          Move(Verbs[Cnt].Verb,Tmp,Length(Verbs[Cnt].Verb)+1);
  165.          Tmp[0]:=#20;
  166.          My_Write(Tmp);
  167.          LastType:=Verbs[Cnt].VType;
  168.          End;
  169. My_WriteLn('')
  170. End;
  171.  
  172.  
  173. End.
  174.